package cn.hicard.risk.dao.bd;

import java.util.List;
import java.util.Map;

import cn.hicard.core.Page;
import cn.hicard.core.PageResult;
import cn.hicard.core.Where;
import cn.hicard.risk.entity.BdTradefileinfo;


public interface TradefileinfoDao {
	
	/**
	 * 检查指定交易日期内的系统参考号是否存在
	 * @param sysno
	 * @param transdate
	 * @return
	 * @throws Exception
	 */
	public boolean checkExistSysno(String sysno, String transdate) throws Exception;
	
	/**
	 * 批量保存
	 * @param list
	 * @throws Exception
	 */
	public void saveList(List<BdTradefileinfo> list) throws Exception;
	
	/**
	 * 根据where据表述的条件查询实体集合，HQL与SQL同时支持，当心where中写错字段
	 * @param where
	 * @return
	 * @throws Exception
	 */
	public List<BdTradefileinfo> findByWhere(Where where) throws Exception;
	
	/**
	 * 分页查询导入的交易数据
	 * @param trade条件
	 * @param page分页
	 * @return
	 * @throws Exception
	 */
	public PageResult<BdTradefileinfo> search(Where where, Page page)throws Exception;
	
	/**
	 * 从传统POS交易数据中筛选需要紧急调单的数据
	 * @param date
	 * @return
	 * @throws Exception
	 */
	public List<BdTradefileinfo> findCallorder(String date)throws Exception;
		
	/**
	 * 根据 [商户号merchno] 和 [终端号termno] 汇总 [交易数量] 和 [交易额]<BR/>
	 * 返回的Map key：merchno,merchname,transcount,summoney,area, termno 
	 * @param where
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> findCollect(Where where)throws Exception;
	
	
	public List<String> findLastDate() throws Exception;

}
